package com.liuxinlong.modules.material.service;

import java.util.List;
import java.util.Map;

import com.liuxinlong.modules.entity.MaterialResume;

import javax.servlet.http.HttpServletResponse;

/**
 * 物料履历信息服务层接口
 *
 * @author liuxinlong@hotwater.com.cn
 * @version 1.0.0
 * @since 2021-01-17
 */
public interface MaterialResumeService {
    /**
     * 分页查询物料履历信息
     *
     * @param queryParam 请求信息
     * @return 物料履历信息列表
     */
    List<Map<String, Object>> pageResumeInfo(Map<String, Object> queryParam);

    /**
     * 查询物料履历信息总数
     *
     * @param queryParam 请求信息
     * @return 物料履历信息总数
     */
    int getResumeCount(Map<String, Object> queryParam);

    /**
     * 新增物料履历信息
     *
     * @param materialResume 物料履历信息
     */
    void addResumeInfo(MaterialResume materialResume);

    /**
     * 更新物料履历信息
     *
     * @param materialResume 物料履历信息
     */
    void updateResumeInfo(MaterialResume materialResume);

    /**
     * 删除物料履历信息
     *
     * @param id 物料履历id
     */
    void deleteResumeInfo(String id);

    /**
     * 查询物料履历信息
     *
     * @param material       物料id
     * @param region         物料所属域
     * @param childStartTime 子项开始时间
     * @return 物料履历
     */
    Map<String, Object> queryResumeInfo(String material, String region, String childStartTime);

    /**
     * 查询图纸信息
     *
     * @param id 图纸id
     * @param response response
     */
    void queryDrawInfo(String id, HttpServletResponse response);

    /**
     * 查询ECN信息
     *
     * @param id       ecn编码
     * @param response response
     */
    void queryECNInfo(String id, HttpServletResponse response);

    /**
     * 导出物料履历信息
     *
     * @param material       物料id
     * @param region         物料所属域
     * @param childStartTime 子项开始时间
     * @param response       response
     * @return 物料履历文件
     */
    void exportMaterialResume(String material, String region, String childStartTime, HttpServletResponse response);
}
